The present invention relates to a speech coder/decoder for high quality coding of speech signals with designated parameters.
A controllable bit rate speech coder/decoder such as a CDMA (Code Division Multiple Access) system is well known in the art. An example of this type of system is disclosed in, for instance, “Enhanced Variable Rate Coded Speech Service Option 3 for Wide and Spread Spectrum Digital Systems”, Standardization Recommendation Specifications, IS-127, TIA TR45 (Literature 1).
In this system, CELP (code excited linear prediction) coding system control parameters are set from a table, which is produced in advance from the results of a bit rate determination on the basis of input signal features, and the input signal is coded on the basis of the control parameters set in this manner. The above system typically of forcibly sets a bit rate on the basis of an external signal.
This type of speech coder/decoder will now be briefly described with reference to FIG. 11. In the illustrated speech coder/decoder, the bit rate is controlled on the basis of an external signal.
The illustrated speech coder/decoder comprises a speech coder and a speech decoder. The speech coder and speech decoder include respective coding parameter controllers 51 and 55. In the speech coder, a bit rate is given to the coding parameter controller 51. The coding parameter controller 51 selects control parameters corresponding to the given bit rate with reference to a table (not shown, but for instance a ROM (read only memory) with bit rate addresses), in which a plurality of control parameters for controlling the operation of a CELP coder 52 are stored, and provides the selected control parameters to the CELP coder 52. The control parameters include a sub-frame length as a unit of the excitation signal coding in CELP coding and bit distribution.
An input signal (i.e., input speech signal) is supplied to a CELP coder 52. The CELP coder 52 computes linear prediction coefficients which represent a spectral envelope characteristic of the input signal by linear prediction analysis thereof for each predetermined frame. The CELP coder 52 also generates an excitation signal by driving a linear prediction synthesis filter corresponding to the spectral envelope characteristic, and codes the excitation signal on the basis of the bit distribution. The excitation signal is coded for each of a plurality of sub-frames, into which each frame is divided.
The excitation signal noted above is constituted by a periodic component representing the pitch period of the input signal, a residue signal, and gains of these components. The periodic component representing the pitch period of the input signal is expressed as an adaptive codevector stored in a codebook called an adaptive codebook. The residue component is expressed as a multi-pulse signal which is disclosed in, for instance, J-P. Adoul et al, “Fast CELP Coding Based on Algebraic Coders”, Proc. ICASSP, pp. 1957–1960, 1987 (Literature 2). The excitation signal is generated by weight imparting the adaptive codevector and the multi-pulse signal by gain data stored in a gain codebook and adding together the results of the weight imparting. A reproduced signal can be synthesized by driving the linear prediction synthesis filter on the basis of the excitation signal.
The selection of the adaptive codevector, multi-pulse signal and gain is controlled so as to minimize the degree of error resulting from the acoustical weight imparting of an error signal, representing an error between the reproduced signal and the input signal. The CELP coder 52 outputs indexes corresponding to the adaptive codevector, multi-pulse signal and gain, and an index representing the linear prediction coefficients, to a multiplexer 53.
The multiplexer 53 provides a bit stream which is obtained by converting the indexes corresponding to the adaptive codevector, multi-pulse signal, gain and linear prediction coefficients for each frame. Data representing the bit rate is stored in a bit stream header.
In the speech decoder, a demultiplexer 54 receives the bit stream, extracts bit stream header data representing the bit rate, and provides the extracted bit rate data to the coding parameter controller 55. Then, the demultiplexer 54 extracts the indexes corresponding to the adaptive codevector, multi-pulse signal, gain and linear prediction coefficients from the bit stream for each frame, and provides the extracted data to a CELP decoder 56.
The coding parameter controller 55 executes a similar process to that in the coding parameter controller 51, then selects the control parameters on the basis of the supplied bit rate data, and provides the selected control parameters to the CELP decoder 56.
The CELP decoder 56 executes a decoding process using the indexes corresponding to the adaptive codevector, multi-pulse signal, gain and linear prediction coefficients as well as the sub-frame length and bit rate data. The excitation signal is obtained by weight imparting the adaptive codevector and multi-pulse signal with the gain data held in the gain codebook and adding together the results of the weight imparting. In the CELP decoder 56, the reproduced signal is obtained by driving the linear prediction synthesis filter on the basis of the excitation signal.
As shown above, in the CELP coding system the bit rate is controlled by controlling the sub-frame length as a unit of the excitation signal coding and the bit distribution.
In the prior art speech coder/decoder, however, the frame length as a unit of coding is fixed. Therefore, it is impossible to control coding delay, is defined as time from the instant a first input signal sample is supplied to the system until the instant the coding process begins.
In addition, in the prior art coder/decoder it is necessary to provide in advance the parameters which are necessary for generating the multi-pulse signal. Therefore, the system can serve its function only when a predetermined bit rate is given.